#ifndef _CIRCUIT_GRAPH_H
#define _CIRCUIT_GRAPH_H

#include <cstdlib>
#include <limits>
#include <map>
#include <string>
#include <cassert>
#include <iostream>
#include <exception>
#include "graphModel.h"
#include "parser_helper.h"


class CircuitGraph: public boostGraph												
{
	public:
	
	
		// NonTemplate Functions
		void printOutEdgeProperty (vertex_descriptor&) ;
		void updateConnectivity (std::vector<netConnectivity>&, std::map<std::string, double>&) ;
		
		double accumTotalLeakage (std::map <std::string, LibParserCellInfo>&) ;
		
		// Template Functions
		template <typename T, typename Bundle> void printGateProperty (T Bundle::*) ;
		template <typename T, typename Bundle> void printNetProperty (T Bundle::*) ;
	
	
};

#include "circuitgraph.hpp"

#endif
